// 引入axios
import axios from 'axios'
import { getToken, removeToken } from './cookie'
import router from '@/router';
// import { ElMessage } from 'element-plus';

// 不同的功能，通过axios请求的是不同接口的地址
// 127.0.0.1:19090
// 解决无法添加题目问题
axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";


const service = axios.create({
    baseURL: '/dev-api', // 基础路径，会在请求地址前面拼接上baseURL
    timeout: 5000 // 超时时间，单位是毫秒，请求5s还没有响应，直接判定超时
})



//请求拦截器
// 前端  -  拦截器  - 后端
service.interceptors.request.use(
    (config) => {
      if (getToken()) {
        config.headers["Authorization"] = "Bearer " + getToken();
      }
      return config;
    },
    (error) => {
      console.log(error)
      Promise.reject(error);
    }
  );
  
  //响应拦截器
service.interceptors.response.use(
    (res) => {  //res : 响应数据
        // 未设置状态码则默认成功状态
        const code = res.data.code;
        const msg = res.data.msg;
        // 处理过期的请求
        if(code == 3001){
          ElMessage.error(msg);
          removeToken();
          router.push('/oj/login');
          return Promise.reject(new Error(msg));
        }

       if(code != 1000){
        ElMessage.error(msg);
        return Promise.reject(new Error(msg));
       }else{
        // router.push('/oj/Layout')
        return Promise.resolve(res.data);
       }
      },
       (error) => {
        console.log(error);
        return Promise.reject(error); 
       }
      
    );
    // 请求拦截器



export default service